#include "mainwindow.h"
#include "logindialog.h"
#include "userdao.h"
#include "appinitializer.h"  // 包含新的初始化类
#include <QApplication>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 使用初始化类
    // 全局初始化数据库（只调用一次）
    if (!AppInitializer::initialize()) {
        QMessageBox::critical(nullptr, "初始化失败", AppInitializer::error());
        return -1;
    }

    // 创建DAO对象
    Database* db = AppInitializer::database();
    UserDao userDao(db);

    // 显示登录对话框
    LoginDialog loginDialog(&userDao);
    if (loginDialog.exec() != QDialog::Accepted) {
        return 0;
    }

    QMap<QString, QVariant> userInfo = loginDialog.getUserInfo();

    // 显示主窗口
    MainWindow w(userInfo);
    w.setWindowTitle(QString("超市收银系统 - 当前用户: %1").arg(loginDialog.getUsername()));
    w.show();

    return a.exec();
}
